package com.edu.lxshpc.service;

import com.edu.lxshpc.pojo.Blog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.edu.lxshpc.povo.BlogCommentVO;
import com.edu.lxshpc.povo.BlogVO;
import com.edu.lxshpc.utils.PageParams;
import com.edu.lxshpc.utils.Result;


/**
* @author Sanshan
* @description 针对表【blog】的数据库操作Service
* @createDate 2023-11-09 10:05:42
*/

public interface BlogService extends IService<Blog> {

    /**
     * 获得博客列表数据
     *
     * @param pageParams 分页参数
     * @param userId     用户id
     * @param categoryId 分类id
     * @param search 搜索关键字
     * @return Result<Blog>
     */
    Result getArticleList(PageParams pageParams, Long userId, Integer categoryId, String search);
    /**
     * 获取文章详情
     * @param blogId 文章ID
     * @return Result对象，包含文章详情或错误信息
     */
    Result getBlogDetail(Long blogId);
    /**
     * 获取博客评论列表
     * @param pageParams 分页参数
     * @param blogId     博客id
     * @return Result<List < BookCommentVO>>
     */
    Result getBlogComments(Long blogId, PageParams pageParams);

    /**
     *  * 插入评论
     * @param blogCommentVO 评论vo类
     * @return 业务信息
     */
    Result saveBlogComment(BlogCommentVO blogCommentVO);


    /**
     * 删除博客
     * @param blogId 博客id
     * @return 业务结果信息
     */
    Result removeById(Long blogId);

    /**
     * 更新或插入博客
     * @param blogVO 博客vo
     * @return 业务结果信息
     */
    Result saveOrUpdateBlog(BlogVO blogVO);
    /**
     * 获得博客标题列表
     * @return 业务结果信息
     */
    Result getBlogTitleList();
    /**
     * 删除评论
     * @param commentId 评论id
     * @return 业务结果信息
     */
    Result removeCommentById(Long commentId);
}
